package com.cskaoyan.javase.array._3exception._2null;

/**
 * 空指针异常(NullPointerException)
 * 当使用等于null的引用访问/操作对象时,由于对象根本不存在,就会产生该异常.
 *
 * 注意事项：
 *      1.空指针异常（NullPointerExceptionE），简称NPE，是Java之中最负盛名的异常，没有之一。以后大家会天天和引用数据类型打交道，也会每天和空指针异常打交道。空指针异常在多数情况下是有害的，会导致程序意外终止，避免空指针异常是Java程序员的必修课之一。
 *      常见的、最简单朴实的规避手段就是通过if进行判断，判断出引用不会指向null后再使用引用操作对象。
 *
 *      2.空指针异常针对所有引用数据类型，不仅仅是数组操作。
 *
 * @since 14:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        String str = null;
        // System.out.println(str.length());
        // 直接打印null引用是不会出错的,因为引用没有访问/操作对象
        System.out.println(str);

        int[] arr = null;
        // System.out.println(arr.length);

        // if判断是避免空指针异常最常见,最朴素的有效方式.
        if (arr != null) {
            System.out.println(arr.length);
        }

        System.out.println("----------------------------");
        // 引用没有指向对象,不可能产生数组下标越界,这里会产生空指针异常
        // System.out.println(arr[0]);
        arr = new int[3];
        System.out.println(arr[3]);
    }
}
